public class HuiWenShu {
    public static void main(String[] args) {
        boolean palindrome = isPalindrome(12321);
        System.out.println(palindrome);
    }
    public static boolean isPalindrome(int x){
        if (x < 0|| x%10 == 0 && x != 0){ // x为负数 或 x能整除10 并且x不能为0时，返回不是回文数false
            return false;
        }
        int rev = 0; // 反转后半部分的值
        while (rev<x){ // 半部分的值小于每进行一次循环x除10的值时，继续循环，否则退出
            /**
             * 121
             * ① rev=0*10+121%10=1      x=121/10=12
             * ② rev=1*10+12%10=10+2=12 x=12/10=1
             * ③ while(12<12)不进入循环
             * return 12==12(x==rev)返回true
             */
            rev = rev*10+x%10; // 对反转的一个值（初始为0）乘10+每轮对原值先取余再除10的值
            x/=10;
        }
        return x == rev || x == rev/10;
    }
}
